#!/bin/bash

# Dify知识库管理系统 - 停止脚本

echo "=========================================="
echo "Dify知识库管理系统 - 停止服务"
echo "=========================================="
echo ""

# 颜色定义
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 停止后端
if [ -f "backend.pid" ]; then
    BACKEND_PID=$(cat backend.pid)
    echo "停止后端服务 (PID: $BACKEND_PID)..."
    kill $BACKEND_PID 2>/dev/null
    if [ $? -eq 0 ]; then
        echo -e "${GREEN}✓ 后端服务已停止${NC}"
    else
        echo -e "${YELLOW}⚠ 后端服务可能已停止${NC}"
    fi
    rm backend.pid
else
    echo -e "${YELLOW}⚠ 未找到后端进程ID文件${NC}"
    # 尝试通过端口查找并停止
    BACKEND_PID=$(lsof -ti:8080)
    if [ ! -z "$BACKEND_PID" ]; then
        echo "发现后端进程 (PID: $BACKEND_PID)，正在停止..."
        kill $BACKEND_PID 2>/dev/null
        echo -e "${GREEN}✓ 后端服务已停止${NC}"
    fi
fi
echo ""

# 停止前端
if [ -f "frontend.pid" ]; then
    FRONTEND_PID=$(cat frontend.pid)
    echo "停止前端服务 (PID: $FRONTEND_PID)..."
    kill $FRONTEND_PID 2>/dev/null
    if [ $? -eq 0 ]; then
        echo -e "${GREEN}✓ 前端服务已停止${NC}"
    else
        echo -e "${YELLOW}⚠ 前端服务可能已停止${NC}"
    fi
    rm frontend.pid
else
    echo -e "${YELLOW}⚠ 未找到前端进程ID文件${NC}"
    # 尝试通过端口查找并停止
    FRONTEND_PID=$(lsof -ti:5173)
    if [ ! -z "$FRONTEND_PID" ]; then
        echo "发现前端进程 (PID: $FRONTEND_PID)，正在停止..."
        kill $FRONTEND_PID 2>/dev/null
        echo -e "${GREEN}✓ 前端服务已停止${NC}"
    fi
fi
echo ""

echo "=========================================="
echo "所有服务已停止"
echo "=========================================="
